/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.actions.cambios;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Utilities;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import com.mapping.Componentes;
import com.mapping.Departamento;
import com.mapping.Dispositivo;
import com.mapping.Empleado;
import com.mapping.Ticket;
import java.io.FileOutputStream;
import java.io.IOException;
/**
 *
 * @author Andres
 */
public class ReporteCambioPDF{
    private Ticket ticket;
    private Dispositivo dispositivo;
    private Componentes componente;
    private Componentes componenteCambio;
    private String fecha;
    private String ruta;
    private String nombreArchivo;
    
    public ReporteCambioPDF(){
        
    }

    public ReporteCambioPDF(Ticket ticket, Dispositivo dispositivo, Componentes componente, Componentes componenteCambio, String fecha, String ruta, String nombreArchivo) {
        this.ticket = ticket;
        this.dispositivo = dispositivo;
        this.componente = componente;
        this.componenteCambio = componenteCambio;
        this.fecha = fecha;
        this.ruta = ruta;
        this.nombreArchivo = nombreArchivo;
    }
 
     public void generar() throws DocumentException, IOException{
        //Page size 215.9 mm x 279.4 mm
        Document documento = new Document(PageSize.LETTER);
        PdfWriter writer = PdfWriter.getInstance(documento, new FileOutputStream(ruta+"\\"+nombreArchivo));
        documento.open();
        String cabecera = String.format("ID Ticket: %s                                                          Fecha y Hora: %s",
                ticket.getIdTicket(),
                fecha);
       Empleado emp =  ticket.getEmpResolvio();
       String empleadoCambio = String.format("Realizó el cambio: %s" , emp.getNombre());
       
        Departamento depa = (Departamento)dispositivo.getDepartamentoCollection().toArray()[0];
        String descripcion = String.format("Se realizó el cambio del componente %s con características %s por el "
                + "componente con características %s del equipo %s el cual se encuentra en el departamento %s "
                + "localizado en %s.",
                componente.getIdTipo().getTipo(),
                componente.getCaracteristicas(),
                componenteCambio.getCaracteristicas(),
                dispositivo.getIdDisp(),
                depa.getNombre(),
                depa.getLocalizacion());
        
        Paragraph p1 = new  Paragraph(cabecera);
        Paragraph p2 = new  Paragraph(empleadoCambio);
        p2.setSpacingBefore(20);
        Paragraph p3 = new  Paragraph(descripcion);
        p3.setSpacingBefore(30);
        
        documento.add(p1);
        documento.add(p2);
        documento.add(p3);
        documento.close();
    }

    public void setTicket(Ticket ticket) {
        this.ticket = ticket;
    }

    public void setDispositivo(Dispositivo dispositivo) {
        this.dispositivo = dispositivo;
    }

    public void setComponente(Componentes componente) {
        this.componente = componente;
    }

    public void setComponenteCambio(Componentes componenteCambio) {
        this.componenteCambio = componenteCambio;
    }

    public void setFecha(String fecha) {
        this.fecha = fecha;
    }

    public void setRuta(String ruta) {
        this.ruta = ruta;
    }

    public void setNombreArchivo(String nombreArchivo) {
        this.nombreArchivo = nombreArchivo;
    }
}
